<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
<div>
    手机号：<input type="text">
</div>

<script>
// 如何判断一个值是否为纯数字？
// var phone1 = '1352055971a';
// var phone2 = '13520559717';
// var phone3 = '1352055.9717';
// console.log( Number(phone1) );// NaN
// console.log( Number(phone2) );// 13520559717
// console.log( Number(phone3) );// 1352055.9717
// console.log( isNaN(phone1) );// true
// console.log( isNaN(phone2) );// false
// console.log( isNaN(phone3) );// false


// 当一个数字大于指定的范围时，表示为 Infinity 正无穷大
// 当数字大于1.7976xxxxxxxxxxx15E+308范围时，显示为 Infinity
// 科学计数法：
// 3.14E+5 -> 3.14*10^5
// 1.7976xxxxxxxxxxx15E+308 -> 1.7976xxxxxxxxxxx15*10^308
// Infinity的几个特征：
// 1.没有任何数字比Infinity更大了
// 2.Infinity与任何数字计算，结果都是Infinity

// console.log( typeof Infinity );// 'number'
// console.log( Infinity > 99999999999999999999999999999999999999999999999999999999999 );// true
// console.log( Infinity > Infinity );// false
// console.log( Infinity == Infinity );// true
// console.log( 4/0 );// Infinity


// 当一个数字小于指定的范围时，表示为 -Infinity 负无穷大
// 当数字小于-1.7976xxxxxxxxxxx15E+308范围时，显示为 -Infinity
// -Infinity的几个特征：
// 1.没有任何数字比-Infinity更小了
// 2.-Infinity与任何数字计算，结果都是-Infinity
// console.log( Infinity + (-Infinity) );// NaN
// console.log( -4/0 );// -Infinity


// 使用isFinite()方法判断一个数字是否为有限的
// console.log( isFinite(4/0) );// false
// console.log( isFinite(4/1) );// true


// parseInt(val)方法将val值解析为整数
// console.log( parseInt(123) );// 123
// console.log( parseInt(123.456) );// 123
// console.log( parseInt('123') );// 123
// console.log( parseInt('123.456') );// 123
// console.log( parseInt('123a') );// 123
// console.log( parseInt('a123') );// NaN
// console.log( parseInt('123a456') );// 123
// console.log( parseInt('12a3456') );// 12
// parseInt的解析规则：
// 1.从左到右依次解析
// 2.如果第一个字符为非数字，直接返回NaN
// 3.如果第一个字符是数字，继续往后依次解析,直到非数字字符时,解析结束,返回前面解析到的数字

// parseFloat(val)方法将val值解析为数字(整数和浮点数)
// parseFloat和parseInt区别: 
// parseInt只能解析出整数
// parseFloat可以解析整数和浮点数
// console.log( parseFloat(123) );// 123
// console.log( parseFloat(123.456) );// 123.456
// console.log( parseFloat('123') );// 123
// console.log( parseFloat('123.456') );// 123.456
// console.log( parseFloat('123a') );// 123
// console.log( parseFloat('a123') );// NaN
// console.log( parseFloat('123a456') );// 123
// console.log( parseFloat('12a3456') );// 12


// JS中浮点数计算的问题: 
console.log( 0.1+0.2 );// 0.30000000000000004
console.log( 0.2+0.7 );// 0.8999999999999999
console.log( (0.1+0.2) == 0.3 );// false 为什么?


</script>
</body>
</html>